/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.compra.managed;

import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.compra.bean.Empresa;
import sv.com.intesal.compra.bean.LibroFiscalCompra;
import sv.com.intesal.compra.bean.Sucursal;
import sv.com.intesal.compra.controlador.EmpresaControlador;
import sv.com.intesal.compra.controlador.LibroFiscalCompraControlador;
import sv.com.intesal.compra.controlador.SucursalControlador;
import sv.com.intesal.seguridad.managed.SessionManaged;

/**
 *
 * @author ejerez
 */
@ManagedBean(name = "libroFiscalCompraManaged")
@ViewScoped
public class LibroFiscalCompraManaged implements Serializable {

    private Mensaje m;
    private SessionManaged sm;
    private List<Sucursal> sucursales;
    private List<Empresa> empresas;
    private List<LibroFiscalCompra> libroFiscalCompras;
    private LibroFiscalCompra selectedEncaLibroFiscalCompra;
    private LibroFiscalCompra selectedDetaLibroFiscalCompra;

    public LibroFiscalCompraManaged() {

        m = new Mensaje();
        sm = new SessionManaged();

        this.selectedDetaLibroFiscalCompra = new LibroFiscalCompra();
        this.selectedEncaLibroFiscalCompra = new LibroFiscalCompra();

        this.llenarComboBox();
    }

    private void llenarComboBox() {
        try {
            if (this.empresas == null) {
                EmpresaControlador ec = new EmpresaControlador();
                this.empresas = ec.fillComboBox();
            }

            if (sucursales == null) {
                SucursalControlador sc = new SucursalControlador();
                this.sucursales = sc.getAllSucursales();
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void fillGrid() {
        try {
            if (sm.validar_rol_usuario("wfrmcon_LibroFiscalCompra", sm.buscar) == true) {
                LibroFiscalCompraControlador lf = new LibroFiscalCompraControlador();
                this.libroFiscalCompras = lf.getLibroFiscalCompra(this.selectedEncaLibroFiscalCompra);
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void generarEncaReporte() {
        try {

            if (this.libroFiscalCompras == null) {
                m.messageError("NO HAY REGISTROS EN LA BUSQUEDA");
            } else {
                if (sm.validar_rol_usuario("wfrmcon_LibroFiscalCompra", sm.reporte) == true) {
                    LibroFiscalCompraControlador lf = new LibroFiscalCompraControlador();
                    lf.generarReporte(this.selectedEncaLibroFiscalCompra);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }


    /*SETTERS AND GETTERS*/
    public List<LibroFiscalCompra> getLibroFiscalCompras() {
        return libroFiscalCompras;
    }

    public void setLibroFiscalCompras(List<LibroFiscalCompra> libroFiscalCompras) {
        this.libroFiscalCompras = libroFiscalCompras;
    }

    public LibroFiscalCompra getSelectedDetaLibroFiscalCompra() {
        if (selectedDetaLibroFiscalCompra == null) {
            selectedDetaLibroFiscalCompra = new LibroFiscalCompra();

        }
        return selectedDetaLibroFiscalCompra;
    }

    public void setSelectedDetaLibroFiscalCompra(LibroFiscalCompra selectedDetaLibroFiscalCompra) {
        this.selectedDetaLibroFiscalCompra = selectedDetaLibroFiscalCompra;
    }

    public LibroFiscalCompra getSelectedEncaLibroFiscalCompra() {
        return selectedEncaLibroFiscalCompra;
    }

    public void setSelectedEncaLibroFiscalCompra(LibroFiscalCompra selectedEncaLibroFiscalCompra) {
        this.selectedEncaLibroFiscalCompra = selectedEncaLibroFiscalCompra;
    }

    public List<Sucursal> getSucursales() {
        return sucursales;
    }

    public void setSucursales(List<Sucursal> sucursales) {
        this.sucursales = sucursales;
    }

    public List<Empresa> getEmpresas() {
        return empresas;
    }

    public void setEmpresas(List<Empresa> empresas) {
        this.empresas = empresas;
    }
}
